package sdk
//
//import (
//	"bytes"
//	"context"
//	"encoding/json"
//	"log"
//	"net/http"
//	"time"
//	//"windplatform/server/engine/db/nats"
//	//"windplatform/server/protogo/agent"
//	message "windplatform/server/protogo/platformessage"
//
//	"google.golang.org/grpc"
//)
//
//var contentType = "application/json"
//
////发送http格式的消息到平台网关
//func Send(client *http.Client, url string, wsId string, token string, raw []byte) error {
//	buffer := bytes.NewBuffer(raw)
//
//	req, err := http.NewRequest("POST", url, buffer)
//	if err != nil {
//		return err
//	}
//
//	req.Header.Set("Content-Type", contentType)
//	req.Header.Set("Authorization", token)
//	req.Header.Set("x-mx-wsId", wsId)
//	req.ContentLength = int64(len(raw))
//
//	_, err = client.Do(req)
//
//	client.CloseIdleConnections()
//
//	return err
//}
//
//func SendWithgRPC(rpcClient *grpc.ClientConn, token string, raw []byte) (err error) {
//
//	c := message.NewWebsocketClient(rpcClient)
//	ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
//	mreq := &message.MessageReq{
//		UserId: 0,
//		Data:   raw,
//		Token:  token,
//	}
//
//	//log.Printf("SendWithgRPC to server: %v", mreq)
//	_, err = c.Message(ctx, mreq)
//	if err != nil {
//		log.Printf("SendWithgRPC invoke error: %v", err)
//	}
//
//	return
//}
//
//func SendUserOnlineStatusWithgRPC(rpcClient *grpc.ClientConn, status *UserOnlineStatus) (err error) {
//
//	c := message.NewWebsocketClient(rpcClient)
//	ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
//
//	log.Printf("SendUserOnlineStatusWithgRPC status: %v", status)
//	if status.Status == 1 { // online
//		mreq := &message.ConnectReq{
//			UserId:  status.UserId,
//			WsId:    status.WsId,
//			Service: status.ServiceId,
//			Token:   status.Token,
//			GameId:  status.GameId,
//		}
//		log.Printf("SendUserOnlineStatusWithgRPC to server: %v", mreq)
//		_, err = c.Connect(ctx, mreq)
//		if err != nil {
//			log.Printf("SendUserOnlineStatusWithgRPC Connect error message: %v", err)
//		}
//	} else { // offline
//		mreq := &message.DisconnectReq{
//			UserId: status.UserId,
//			Token:  status.Token,
//		}
//		log.Printf("send Disconnect to server: %v", mreq)
//		_, err = c.Disconnect(ctx, mreq)
//		if err != nil {
//			log.Printf("SendUserOnlineStatusWithgRPC Disconnect error message: %v", err)
//		}
//	}
//
//	//log.Println("SendUserOnlineStatusWithgRPC::response from server")
//	return
//}
//
//func SendNats(topic string, wsId []string, raw []byte) error {
//
//	m := &nats.Message{
//		Header: map[string]string{
//			"Content-Type": contentType,
//		},
//	}
//
//	//fmt.Printf("=========SendNats============ raw: %v", raw)
//	body := &agent.NatsMessage{
//		Data:  raw,
//		WsIds: wsId,
//	}
//
//	m.Body, _ = json.Marshal(body)
//
//	b, _ := json.Marshal(m)
//
//	return nats.GetNatsObj().Publish(topic, b)
//}
